#ifndef __MY_JSON_
#define __MY_JSON_

#include <jsoncpp/json/json.h>
#include <iostream>
#include <memory>
#include <sstream>
using namespace std;

Json::Value unserialize(const string& str)
{
    Json::CharReaderBuilder crb;
    unique_ptr<Json::CharReader> cr(crb.newCharReader());
    Json::Value root;
    string err;
    bool ret = cr->parse(str.c_str(), str.c_str() + str.size(), &root, &err);
    if(ret == false)
    {
        perror("反序列化失败");
        exit(-1);
    }

    return root;
}

string serialize(const Json::Value& root)
{
    Json::StreamWriterBuilder swb;
    unique_ptr<Json::StreamWriter> sw(swb.newStreamWriter());
    stringstream ss;
    sw->write(root, &ss);

    string str = ss.str();
    return str;
}


#endif